]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
windowManager: Always check dimming when an attached modal opens/closes
authorFlorian Müllner <fmuellner@gnome.org>
Mon, 22 Feb 2016 16:59:05 +0000 (17:59 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Mon, 22 Feb 2016 18:42:57 +0000 (19:42 +0100)
We skip window animations while the overview is shown (and the window
group is hidden) to avoid unnecessary work. However when an attached
modal dialog is opened or closed, this involves checking whether the
parent window should be dimmed - skipping that test means that we can
simply fail to dim or undim a window altogether, so do that check
unconditionally.

https://bugzilla.gnome.org/show_bug.cgi?id=762475

js/ui/windowManager.js

index 32b8c0f6c9bc6f1547a2e813c13f46f1dbe5e10d..a36a71ffc21323d3ce27a208e75b65491ca4353d 100644 (file)
@@ -1403,6 +1403,9 @@ const WindowManager = new Lang.Class({
             actor._windowType = type;
         }));
 
+        if (actor.meta_window.is_attached_dialog())
+            this._checkDimming(actor.get_meta_window().get_transient_for());
+
         let types = [Meta.WindowType.NORMAL,
                      Meta.WindowType.DIALOG,
                      Meta.WindowType.MODAL_DIALOG];
@@ -1411,9 +1414,6 @@ const WindowManager = new Lang.Class({
             return;
         }
 
-        if (actor.meta_window.is_attached_dialog())
-            this._checkDimming(actor.get_meta_window().get_transient_for());
-
         switch (actor._windowType) {
         case Meta.WindowType.NORMAL:
             actor.set_pivot_point(0.5, 1.0);
@@ -1496,6 +1496,9 @@ const WindowManager = new Lang.Class({
                                                              });
         }
 
+        if (window.is_attached_dialog())
+            this._checkDimming(window.get_transient_for(), window);
+
         let types = [Meta.WindowType.NORMAL,
                      Meta.WindowType.DIALOG,
                      Meta.WindowType.MODAL_DIALOG];
@@ -1530,7 +1533,6 @@ const WindowManager = new Lang.Class({
 
             if (window.is_attached_dialog()) {
                 let parent = window.get_transient_for();
-                this._checkDimming(parent, window);
                 actor._parentDestroyId = parent.connect('unmanaged', Lang.bind(this, function () {
                     Tweener.removeTweens(actor);
                     this._destroyWindowDone(shellwm, actor);